package com.whoru.app;

import java.util.ArrayList;

import com.whoru.beans.Globals;
import com.whoru.beans.User;
import com.whoru.logica.AdapterAmigos;
import com.whoru.logica.WebServices;

import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

public class Amigos extends ListActivity {
	WebServices ws = new WebServices();
	Context ctx;

	private ArrayList<String> amigos; //lista de notas de notificaciones, para rellenar el listview
	private String[] amigos_array;
    private AdapterAmigos listAdapter;
				
     /** Se le llamara la 1 vez que se cree la actividad, y lo que hara sera recargar 
		 *  el array de notas que se visualizara en la lista y llamara actulizar para mostrarlo */
     public void onCreate(Bundle icicle) {
			
			 super.onCreate(icicle);	
			
			Globals appState = ((Globals)getApplicationContext());
			ArrayList<User> u = appState.getAmigos(); 
			amigos_array = new String[u.size()];			
						
			for (int i=0;i<u.size();i++){		
				
				if (u.get(i).getMostrar()==1){
					
					amigos_array[i]=u.get(i).getName();
				}
				else 
					amigos_array[i]="Desconectado --- "+u.get(i).getName();		
			}	
			actualizar();
		}
		 /** Se le llamara despues de la 1 vez que se cree la actividad, y lo que hara sera recargar 
		  *  el array de notas que se visualizara en la lista y llamara a actualizar para mostrarlo  */
			
	     public void onResume() {
		        super.onResume();
		        Globals appState = ((Globals)getApplicationContext());
				ArrayList<User> u = appState.getAmigos(); 
				amigos_array = new String[u.size()];				
							
				for (int i=0;i<u.size();i++){			
					
					if (u.get(i).getMostrar()==1){
						
						amigos_array[i]=u.get(i).getName();
					}
					else 
						amigos_array[i]="Desconectado --- "+u.get(i).getName();
					
				}	
		        actualizar();       
		   }
	     /** Creara el arraylist de string necesarios para mostrarlo en pantalla y le dara un estilo
	      *  gracias al MyArrayAdapterNoti, es decir le dara su adaptador y lo seteara  */

		public void actualizar(){
			 
			 amigos = new ArrayList<String>();
			 amigos.clear();
		     for(int i = 0 ; i < amigos_array.length ; i++){
		            amigos.add(amigos_array[i]);
		     }
		     if (amigos_array.equals(0)) {		    	 
		    	 amigos.add("No tienes amigos");	    	 
		    	 
		     }
		      listAdapter = new AdapterAmigos(Amigos.this, amigos);
		     
		      if (amigos.size()==0){
		        	setListAdapter(listAdapter);

		      }
		      else{
		    		setListAdapter(listAdapter);		    	
		      }
		      		    
		 }	 
		 		   
		/** Metodo que se ejecutara siempre que la lista se clickada, en el caso de que esta
		 *  se clicke se mostrara la frase estado de tu amigo */
	           
		 protected void onListItemClick(ListView l, View v, final int position, long id) {
				super.onListItemClick(l, v, position, id);
				
				Globals appState = ((Globals)getApplicationContext());
				ArrayList<User> u = appState.getAmigos(); 
				
				Toast.makeText(this, "Tu amigo " + u.get(position).getName()+" tiene como estado: ' "+u.get(position).getMensaje()+" '", Toast.LENGTH_LONG).show();
				onResume();
		 }

}